package com.winit.cloudlink.rabbitmq.mgmt.model.shovel;

import com.google.gson.annotations.SerializedName;

/**
 * @author Steven Liu (Winit)
 */
public class ShovelOptions {
    @SerializedName("src-uri")
    String srcUri;
    @SerializedName("src-queue")
    String srcQueue;
    @SerializedName("src-exchange")
    String srcExchange;
    @SerializedName("src-exchange-key")
    String srcExchangeKey;

    @SerializedName("dest-uri")
    String destUri;
    @SerializedName("dest-queue")
    private String destQueue;
    @SerializedName("dest-exchange")
    private String destExchange;
    @SerializedName("dest-exchange-key")
    private String destExchangeKey;

    @SerializedName("prefetch-count")
    Integer prefetchCount = 1000;

    @SerializedName("reconnect-delay")
    Integer reconnectDelay = 1;

    @SerializedName("add-forward-headers")
    Boolean addForwardHeaders;//value :false,true

    @SerializedName("ack-mode")
    String ackMode = "on-confirm";//value :on-confirm,on-publish,no-ack

    @SerializedName("delete-after")
    String autoDelete = "never";  //value :never,queue-length

    public ShovelOptions() {
    }

    public String getSrcUri() {
        return srcUri;
    }

    public void setSrcUri(String srcUri) {
        this.srcUri = srcUri;
    }

    public String getSrcQueue() {
        return srcQueue;
    }

    public void setSrcQueue(String srcQueue) {
        this.srcQueue = srcQueue;
    }

    public String getSrcExchange() {
        return srcExchange;
    }

    public void setSrcExchange(String srcExchange) {
        this.srcExchange = srcExchange;
    }

    public String getSrcExchangeKey() {
        return srcExchangeKey;
    }

    public void setSrcExchangeKey(String srcExchangeKey) {
        this.srcExchangeKey = srcExchangeKey;
    }

    public String getDestUri() {
        return destUri;
    }

    public void setDestUri(String destUri) {
        this.destUri = destUri;
    }

    public String getDestQueue() {
        return destQueue;
    }

    public void setDestQueue(String destQueue) {
        this.destQueue = destQueue;
    }

    public String getDestExchange() {
        return destExchange;
    }

    public void setDestExchange(String destExchange) {
        this.destExchange = destExchange;
    }

    public String getDestExchangeKey() {
        return destExchangeKey;
    }

    public void setDestExchangeKey(String destExchangeKey) {
        this.destExchangeKey = destExchangeKey;
    }

    public Integer getPrefetchCount() {
        return prefetchCount;
    }

    public void setPrefetchCount(Integer prefetchCount) {
        this.prefetchCount = prefetchCount;
    }

    public Integer getReconnectDelay() {
        return reconnectDelay;
    }

    public void setReconnectDelay(Integer reconnectDelay) {
        this.reconnectDelay = reconnectDelay;
    }

    public Boolean getAddForwardHeaders() {
        return addForwardHeaders;
    }

    public void setAddForwardHeaders(Boolean addForwardHeaders) {
        this.addForwardHeaders = addForwardHeaders;
    }

    public String getAckMode() {
        return ackMode;
    }

    public void setAckMode(String ackMode) {
        this.ackMode = ackMode;
    }

    public String getAutoDelete() {
        return autoDelete;
    }

    public void setAutoDelete(String autoDelete) {
        this.autoDelete = autoDelete;
    }

}
